{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Curve Inversions\n",
    "\n",
    "Volatility levels have repriced lower on the back of positive vaccine efficacy news and a known US election outcome. Although tail risks are not negligible heading into 2021, we see flat or inverted term structures in several G10 crosses.\n",
    "\n",
    "In this note, we look at G10 calendar spread ideas to take advantage of term structure dislocations and find that EURUSD stands out as one of the most attractive curve inversions to fade using volatility swaps.\n",
    "\n",
    "The content of the notebook is split into:\n",
    "* [1 - Let's get started with gs quant](#1---Let's-get-started-with-gs-quant)\n",
    "* [2 - Flattest calendar spreads](#2---Flattest-calendar-spreads)\n",
    "* [3 - EURUSD](#3---EURUSD)\n",
    "* [4 - Structure a Vol Steepener](#4---Structure-a-Vol-Steepener)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1 -  Let's get started with gs_quant\n",
    "\n",
    "Start every session with authenticating with your unique client id and secret. If you don't have a registered app, create one here. run_analytics scope is required for the functionality covered in this example. Below produced using gs-quant version 0.8.229."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "pycharm": {
     "is_executing": true
    }
   },
   "outputs": [],
   "source": [
    "from gs_quant.session import GsSession\n",
    "# external users should substitute their client id and secret; please skip this step if using internal jupyterhub\n",
    "GsSession.use(client_id=None, client_secret=None, scopes=('run_analytics', 'read_financial_data')) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2 - Flattest calendar spreads\n",
    "\n",
    "Let's start by looking across G10 to compare how steep or flat the volatility spreads of various tenors screen. First, let's grab the data from the [marquee data catalog](). Note, there's also a [premium version available]() with additional currencies and tenors."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "from gs_quant.datetime import business_day_offset\n",
    "from gs_quant.data import Dataset\n",
    "from dateutil.relativedelta import relativedelta\n",
    "from datetime import date\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "g10 = ['USDJPY', 'EURUSD', 'AUDUSD', 'GBPUSD', 'USDCAD', 'USDNOK', 'NZDUSD', 'USDSEK', 'USDCHF']\n",
    "tenors = ['3m', '6m', '1y']\n",
    "calendars = ['6m-3m', '1y-6m'] \n",
    "end = business_day_offset(date.today(), -1, roll='forward')\n",
    "start = business_day_offset(end - relativedelta(years=2), -1, roll='forward')\n",
    "\n",
    "vol_data = Dataset('FXIVOL_STANDARD').get_data(start, end, bbid=g10, tenor=tenors, strikeReference='delta', location='NYC')\n",
    "vols = pd.pivot_table(vol_data, values='impliedVolatility', index=['date'], columns=['bbid', 'tenor'], aggfunc=np.sum) * 100"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With the data in hand, let's look at the spread and the spread ratio. A ratio of less than 1 means the vol curve is inverted because the implied vol for the shorter tenor is higher than the longer tenor. A ratio that's close to 1 is considered flat. We also look at how the spread compares relative to a 2 year history to see how significant the dislocation is in the context of recent history."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow0_col5 {\n",
       "            background-color:  #fff7fb;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow0_col6 {\n",
       "            background-color:  #93b5d6;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow1_col5 {\n",
       "            background-color:  #e1dfed;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow1_col6 {\n",
       "            background-color:  #a1bbda;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow2_col5 {\n",
       "            background-color:  #79abd0;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow2_col6 {\n",
       "            background-color:  #adc1dd;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow3_col5 {\n",
       "            background-color:  #3991c1;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow3_col6 {\n",
       "            background-color:  #a1bbda;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow4_col5 {\n",
       "            background-color:  #056dab;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow4_col6 {\n",
       "            background-color:  #fff7fb;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow5_col5 {\n",
       "            background-color:  #056ba7;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow5_col6 {\n",
       "            background-color:  #d0d1e6;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow6_col5 {\n",
       "            background-color:  #0569a4;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow6_col6 {\n",
       "            background-color:  #8cb3d5;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow7_col5 {\n",
       "            background-color:  #0568a3;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow7_col6 {\n",
       "            background-color:  #81aed2;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow8_col5 {\n",
       "            background-color:  #05659f;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow8_col6 {\n",
       "            background-color:  #ede8f3;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow9_col5 {\n",
       "            background-color:  #04629a;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow9_col6 {\n",
       "            background-color:  #a8bedc;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow10_col5 {\n",
       "            background-color:  #045e93;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow10_col6 {\n",
       "            background-color:  #2786bb;\n",
       "            color:  #000000;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow11_col5 {\n",
       "            background-color:  #045687;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow11_col6 {\n",
       "            background-color:  #045c90;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow12_col5 {\n",
       "            background-color:  #03446a;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow12_col6 {\n",
       "            background-color:  #023858;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow13_col5 {\n",
       "            background-color:  #034369;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow13_col6 {\n",
       "            background-color:  #023858;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow14_col5 {\n",
       "            background-color:  #023858;\n",
       "            color:  #f1f1f1;\n",
       "        }    #T_9dfdc626_40c6_11eb_a1fb_0050561261edrow14_col6 {\n",
       "            background-color:  #03446a;\n",
       "            color:  #f1f1f1;\n",
       "        }</style><table id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261ed\" ><caption>15 Flattest Calendars</caption><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >Cross</th>        <th class=\"col_heading level0 col1\" >Tenors</th>        <th class=\"col_heading level0 col2\" >Vol Far</th>        <th class=\"col_heading level0 col3\" >Vol Near</th>        <th class=\"col_heading level0 col4\" >Spread</th>        <th class=\"col_heading level0 col5\" >Ratio</th>        <th class=\"col_heading level0 col6\" >%-ile</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row0\" class=\"row_heading level0 row0\" >6</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow0_col0\" class=\"data row0 col0\" >GBPUSD</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow0_col1\" class=\"data row0 col1\" >6m-3m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow0_col2\" class=\"data row0 col2\" >8.95</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow0_col3\" class=\"data row0 col3\" >9.68</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow0_col4\" class=\"data row0 col4\" >-0.73</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow0_col5\" class=\"data row0 col5\" >0.92</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow0_col6\" class=\"data row0 col6\" >20.02</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row1\" class=\"row_heading level0 row1\" >7</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow1_col0\" class=\"data row1 col0\" >GBPUSD</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow1_col1\" class=\"data row1 col1\" >1y-6m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow1_col2\" class=\"data row1 col2\" >8.40</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow1_col3\" class=\"data row1 col3\" >8.95</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow1_col4\" class=\"data row1 col4\" >-0.55</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow1_col5\" class=\"data row1 col5\" >0.94</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow1_col6\" class=\"data row1 col6\" >19.22</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row2\" class=\"row_heading level0 row2\" >11</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow2_col0\" class=\"data row2 col0\" >USDNOK</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow2_col1\" class=\"data row2 col1\" >1y-6m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow2_col2\" class=\"data row2 col2\" >11.38</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow2_col3\" class=\"data row2 col3\" >11.80</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow2_col4\" class=\"data row2 col4\" >-0.42</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow2_col5\" class=\"data row2 col5\" >0.96</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow2_col6\" class=\"data row2 col6\" >18.41</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row3\" class=\"row_heading level0 row3\" >10</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow3_col0\" class=\"data row3 col0\" >USDNOK</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow3_col1\" class=\"data row3 col1\" >6m-3m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow3_col2\" class=\"data row3 col2\" >11.80</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow3_col3\" class=\"data row3 col3\" >12.10</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow3_col4\" class=\"data row3 col4\" >-0.30</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow3_col5\" class=\"data row3 col5\" >0.98</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow3_col6\" class=\"data row3 col6\" >19.22</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row4\" class=\"row_heading level0 row4\" >15</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow4_col0\" class=\"data row4 col0\" >USDSEK</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow4_col1\" class=\"data row4 col1\" >1y-6m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow4_col2\" class=\"data row4 col2\" >9.26</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow4_col3\" class=\"data row4 col3\" >9.37</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow4_col4\" class=\"data row4 col4\" >-0.12</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow4_col5\" class=\"data row4 col5\" >0.99</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow4_col6\" class=\"data row4 col6\" >10.16</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row5\" class=\"row_heading level0 row5\" >14</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow5_col0\" class=\"data row5 col0\" >USDSEK</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow5_col1\" class=\"data row5 col1\" >6m-3m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow5_col2\" class=\"data row5 col2\" >9.37</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow5_col3\" class=\"data row5 col3\" >9.48</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow5_col4\" class=\"data row5 col4\" >-0.11</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow5_col5\" class=\"data row5 col5\" >0.99</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow5_col6\" class=\"data row5 col6\" >16.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row6\" class=\"row_heading level0 row6\" >3</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow6_col0\" class=\"data row6 col0\" >EURUSD</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow6_col1\" class=\"data row6 col1\" >1y-6m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow6_col2\" class=\"data row6 col2\" >6.61</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow6_col3\" class=\"data row6 col3\" >6.68</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow6_col4\" class=\"data row6 col4\" >-0.07</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow6_col5\" class=\"data row6 col5\" >0.99</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow6_col6\" class=\"data row6 col6\" >20.42</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row7\" class=\"row_heading level0 row7\" >2</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow7_col0\" class=\"data row7 col0\" >EURUSD</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow7_col1\" class=\"data row7 col1\" >6m-3m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow7_col2\" class=\"data row7 col2\" >6.68</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow7_col3\" class=\"data row7 col3\" >6.75</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow7_col4\" class=\"data row7 col4\" >-0.07</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow7_col5\" class=\"data row7 col5\" >0.99</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow7_col6\" class=\"data row7 col6\" >21.03</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row8\" class=\"row_heading level0 row8\" >17</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow8_col0\" class=\"data row8 col0\" >USDCHF</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow8_col1\" class=\"data row8 col1\" >1y-6m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow8_col2\" class=\"data row8 col2\" >6.58</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow8_col3\" class=\"data row8 col3\" >6.64</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow8_col4\" class=\"data row8 col4\" >-0.06</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow8_col5\" class=\"data row8 col5\" >0.99</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow8_col6\" class=\"data row8 col6\" >12.98</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row9\" class=\"row_heading level0 row9\" >16</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow9_col0\" class=\"data row9 col0\" >USDCHF</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow9_col1\" class=\"data row9 col1\" >6m-3m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow9_col2\" class=\"data row9 col2\" >6.64</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow9_col3\" class=\"data row9 col3\" >6.69</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow9_col4\" class=\"data row9 col4\" >-0.05</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow9_col5\" class=\"data row9 col5\" >0.99</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow9_col6\" class=\"data row9 col6\" >18.81</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row10\" class=\"row_heading level0 row10\" >13</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow10_col0\" class=\"data row10 col0\" >NZDUSD</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow10_col1\" class=\"data row10 col1\" >1y-6m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow10_col2\" class=\"data row10 col2\" >9.59</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow10_col3\" class=\"data row10 col3\" >9.64</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow10_col4\" class=\"data row10 col4\" >-0.05</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow10_col5\" class=\"data row10 col5\" >0.99</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow10_col6\" class=\"data row10 col6\" >25.65</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row11\" class=\"row_heading level0 row11\" >5</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow11_col0\" class=\"data row11 col0\" >AUDUSD</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow11_col1\" class=\"data row11 col1\" >1y-6m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow11_col2\" class=\"data row11 col2\" >9.48</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow11_col3\" class=\"data row11 col3\" >9.51</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow11_col4\" class=\"data row11 col4\" >-0.02</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow11_col5\" class=\"data row11 col5\" >1.00</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow11_col6\" class=\"data row11 col6\" >30.28</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row12\" class=\"row_heading level0 row12\" >9</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow12_col0\" class=\"data row12 col0\" >USDCAD</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow12_col1\" class=\"data row12 col1\" >1y-6m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow12_col2\" class=\"data row12 col2\" >6.86</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow12_col3\" class=\"data row12 col3\" >6.84</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow12_col4\" class=\"data row12 col4\" >0.02</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow12_col5\" class=\"data row12 col5\" >1.00</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow12_col6\" class=\"data row12 col6\" >33.50</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row13\" class=\"row_heading level0 row13\" >4</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow13_col0\" class=\"data row13 col0\" >AUDUSD</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow13_col1\" class=\"data row13 col1\" >6m-3m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow13_col2\" class=\"data row13 col2\" >9.51</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow13_col3\" class=\"data row13 col3\" >9.48</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow13_col4\" class=\"data row13 col4\" >0.03</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow13_col5\" class=\"data row13 col5\" >1.00</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow13_col6\" class=\"data row13 col6\" >33.50</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edlevel0_row14\" class=\"row_heading level0 row14\" >8</th>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow14_col0\" class=\"data row14 col0\" >USDCAD</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow14_col1\" class=\"data row14 col1\" >6m-3m</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow14_col2\" class=\"data row14 col2\" >6.84</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow14_col3\" class=\"data row14 col3\" >6.80</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow14_col4\" class=\"data row14 col4\" >0.04</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow14_col5\" class=\"data row14 col5\" >1.01</td>\n",
       "                        <td id=\"T_9dfdc626_40c6_11eb_a1fb_0050561261edrow14_col6\" class=\"data row14 col6\" >32.49</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x1dc95dc8>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from gs_quant.timeseries import last_value, percentiles\n",
    "pd.set_option('display.precision', 2)\n",
    "\n",
    "spreads = pd.DataFrame(columns=['Cross', 'Tenors', 'Vol Far', 'Vol Near', 'Spread', 'Ratio', '%-ile'])\n",
    "for cross in g10:\n",
    "    for x in calendars:\n",
    "        far, near = vols[cross, x[:2]], vols[cross, x[3:]]\n",
    "        vols[cross, x] = far - near\n",
    "        vols[cross, f'{x}_ratio'] = far / near\n",
    "        spreads = spreads.append({'Cross': cross, 'Tenors': x, 'Vol Far': last_value(far), 'Vol Near': last_value(near), \n",
    "                                  'Spread': last_value(vols[cross, x]), 'Ratio': last_value(vols[cross, f'{x}_ratio']),\n",
    "                                  '%-ile': last_value(percentiles(vols[cross, f'{x}_ratio']))}, ignore_index=True)\n",
    "vols = vols.sort_index(level=0, axis=1)\n",
    "spreads.sort_values(by=['Ratio'], ascending=True).head(15).style.set_caption('15 Flattest Calendars').background_gradient(subset=['Ratio', '%-ile'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "EURUSD calendar looks relatively attractive as the market is pricing elevated uncertainty in the short term as Covid cases remains elevated in the US / EU. On the other hand, longer maturity vol is seeing large supply by European corporate players which keeps it suppressed. Let's take a closer look. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3 - EURUSD\n",
    "\n",
    "To start, let's visualize 1y-6m EURUSD vol spread vs 6m implied vol. Any value below the green line indicates an inverted curve - including the current point shown in red. Note you can use the function below to examine any cross or spread from the table above."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "def plot_ratio(cross='EURUSD', vol='6m', spread='1y-6m'):\n",
    "    k = sns.scatterplot(data=vols, x=vols[cross, vol], y=vols[cross, f'{spread}'])\n",
    "    k.scatter(last_value(vols[cross, vol]), last_value(vols[cross, f'{spread}']), color='red')\n",
    "    k.axhline(y=0, color='green')\n",
    "    plt.title(f'{cross} {spread}')\n",
    "    plt.xlabel(f'{cross} {vol} Implied Volatility')\n",
    "    plt.ylabel(f'{spread} Implied Vol Spread')\n",
    "    plt.legend(['Flat', cross, 'Current'])\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_ratio('EURUSD', '6m', '1y-6m')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As we can see, 6m vol is relatively low which offers attractive opportunity to position for vega neutral vol steepeners. Let's put this together next."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4 - Structure a Vol Steepener\n",
    "\n",
    "Let's put together a structure to take advantage of the 1y-6m inverted spread as well as the relatively low 6m vol. To do that, we'll look at a long a 6m6m EURUSD forward starting vol swap and short a 6m EURUSD spot starting vol swap with same vega notional."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "pycharm": {
     "is_executing": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>asset_class</th>\n",
       "      <th>type</th>\n",
       "      <th>annualization_factor</th>\n",
       "      <th>buy_sell</th>\n",
       "      <th>calculate_mean_return</th>\n",
       "      <th>first_fixing_date</th>\n",
       "      <th>fixing_frequency</th>\n",
       "      <th>fixing_source</th>\n",
       "      <th>last_fixing_date</th>\n",
       "      <th>notional_amount</th>\n",
       "      <th>notional_currency</th>\n",
       "      <th>pair</th>\n",
       "      <th>settlement_date</th>\n",
       "      <th>strike_vol</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>instrument</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>sell6m (FXVolatilitySwap)</th>\n",
       "      <td>AssetClass.FX</td>\n",
       "      <td>AssetType.VolatilitySwap</td>\n",
       "      <td>252.0</td>\n",
       "      <td>BuySell.Sell</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2020-12-17</td>\n",
       "      <td>Daily/Business Days</td>\n",
       "      <td>WM Company LDN 4pm Mid</td>\n",
       "      <td>2021-06-17</td>\n",
       "      <td>-250000.0</td>\n",
       "      <td>Currency.EUR</td>\n",
       "      <td>EUR USD</td>\n",
       "      <td>2021-01-21</td>\n",
       "      <td>0.07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>buy6m6m (FXVolatilitySwap)</th>\n",
       "      <td>AssetClass.FX</td>\n",
       "      <td>AssetType.VolatilitySwap</td>\n",
       "      <td>252.0</td>\n",
       "      <td>BuySell.Buy</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2021-06-17</td>\n",
       "      <td>Daily/Business Days</td>\n",
       "      <td>WM Company LDN 4pm Mid</td>\n",
       "      <td>2021-12-17</td>\n",
       "      <td>250000.0</td>\n",
       "      <td>Currency.EUR</td>\n",
       "      <td>EUR USD</td>\n",
       "      <td>2021-01-21</td>\n",
       "      <td>0.07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                              asset_class                      type  \\\n",
       "instrument                                                            \n",
       "sell6m (FXVolatilitySwap)   AssetClass.FX  AssetType.VolatilitySwap   \n",
       "buy6m6m (FXVolatilitySwap)  AssetClass.FX  AssetType.VolatilitySwap   \n",
       "\n",
       "                            annualization_factor      buy_sell  \\\n",
       "instrument                                                       \n",
       "sell6m (FXVolatilitySwap)                  252.0  BuySell.Sell   \n",
       "buy6m6m (FXVolatilitySwap)                 252.0   BuySell.Buy   \n",
       "\n",
       "                            calculate_mean_return first_fixing_date  \\\n",
       "instrument                                                            \n",
       "sell6m (FXVolatilitySwap)                     0.0        2020-12-17   \n",
       "buy6m6m (FXVolatilitySwap)                    0.0        2021-06-17   \n",
       "\n",
       "                               fixing_frequency           fixing_source  \\\n",
       "instrument                                                                \n",
       "sell6m (FXVolatilitySwap)   Daily/Business Days  WM Company LDN 4pm Mid   \n",
       "buy6m6m (FXVolatilitySwap)  Daily/Business Days  WM Company LDN 4pm Mid   \n",
       "\n",
       "                           last_fixing_date  notional_amount  \\\n",
       "instrument                                                     \n",
       "sell6m (FXVolatilitySwap)        2021-06-17        -250000.0   \n",
       "buy6m6m (FXVolatilitySwap)       2021-12-17         250000.0   \n",
       "\n",
       "                           notional_currency     pair settlement_date  \\\n",
       "instrument                                                              \n",
       "sell6m (FXVolatilitySwap)       Currency.EUR  EUR USD      2021-01-21   \n",
       "buy6m6m (FXVolatilitySwap)      Currency.EUR  EUR USD      2021-01-21   \n",
       "\n",
       "                            strike_vol  \n",
       "instrument                              \n",
       "sell6m (FXVolatilitySwap)         0.07  \n",
       "buy6m6m (FXVolatilitySwap)        0.07  "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from gs_quant.instrument import FXVolatilitySwap\n",
    "from gs_quant.markets.portfolio import Portfolio\n",
    "\n",
    "vol_swap = FXVolatilitySwap(pair='EURUSD', buy_sell='Sell', last_fixing_date='6m', strike_vol='atm', notional_amount=250000, name='sell6m')\n",
    "fwd_vol_swap = FXVolatilitySwap(pair='EURUSD', buy_sell='Buy', first_fixing_date='6m', last_fixing_date='1y', strike_vol='atm', notional_amount=250000, name='buy6m6m')\n",
    "vol_steepener = Portfolio((vol_swap, fwd_vol_swap)).resolve(in_place=False)\n",
    "\n",
    "vol_trade = vol_steepener.to_frame()\n",
    "vol_trade.index = vol_trade.index.droplevel(0)\n",
    "vol_trade"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sell vol strike: 6.96\n",
      "buy vol strike: 6.57\n"
     ]
    }
   ],
   "source": [
    "print(f'sell vol strike: {vol_trade.strike_vol.iloc[0] * 100:.2f}')\n",
    "print(f'buy vol strike: {vol_trade.strike_vol.iloc[1] * 100:.2f}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note you can use gs-quant to analyze the risks of this trade using the risk package (`from gs_quant.risk import FXVega, FXGamma, FXDelta`), analyze how it would have performed historically using the `HistoricalPricingContext` and run scenario analysis (check out [the scenario tutorial](https://developer.gs.com/docs/gsquant/tutorials/Pricing-and-Risk/scenarios/) for details).\n",
    "\n",
    "Please reach out with any feedback and thoughts!"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
